0.3. Ecosystem
Which components form the course stack?
Each component owns one clear boundary:
| Layer | Component | Responsibility |
|---|---|---|
| Application | Google ADK | Agent loop, sessions, tools, callbacks, workflows, and A2A serving. |
| Connectivity | agentgateway | MCP, A2A, and model routing with policy and telemetry. |
| Platform | kagent | Kubernetes custom resources and lifecycle for agent workloads. |
| Experiment and traces | MLflow | Prompt versions, evaluations, runs, and trace exploration. |
| Telemetry | OpenTelemetry | Vendor-neutral collection and export of runtime signals. |
| Metrics | Prometheus and Grafana | Queryable time series, dashboards, and alerts. |
| Local model | Ollama and Qwen3 | Apache-2.0 open-weight inference without a provider account or fee. |
What does Google ADK own?
ADK is the Python framework in the application process. It defines agents and tools, manages the model/tool loop, persists sessions, runs callbacks, and exposes the Ops Copilot over A2A. The repository pins and locks the Python dependency; it does not rely on whichever version happens to be newest.
ADK is not the gateway, model provider, Kubernetes operator, or observability backend. Keeping those responsibilities separate makes the application portable and each boundary testable.
What does agentgateway own?
agentgateway is an open-source HTTP and gRPC data plane for ordinary services plus AI-native MCP, A2A, and LLM traffic. In this course it exposes three explicit listeners:
:3000for MCP tool traffic.:3001for A2A traffic.:4000for an OpenAI-compatible model endpoint.
The agent uses an OpenAI-compatible model contract directly against Ollama in Chapters 2-4. Chapter 5 changes its base URL to agentgateway, which routes to Ollama/Qwen3 locally. The optional GKE profile changes the gateway backend to Vertex AI/Gemini and obtains cloud identity through Workload Identity Federation; the Python agent does not acquire a provider-specific cloud key.
What does kagent own?
kagent is a CNCF Sandbox project that manages agents as Kubernetes resources. The course installs its pinned Helm chart and submits a type: BYO Agent, which tells kagent to run the course's own A2A-compatible image.
The application remains responsible for its logic and sessions. kagent remains responsible for translating the custom resource into a Kubernetes workload. This distinction is why the same container can run without kagent during host development.
Why use both MLflow and OpenTelemetry?
OpenTelemetry is the transport and semantic layer. The collector receives OTLP from the application and gateway, derives span metrics for Prometheus, and sends traces to MLflow. MLflow adds an agent-specific workspace for experiments, prompts, evaluations, and traces. Neither is hidden behind a hosted SaaS account in the course.
Which open standards connect the components?
- MCP describes how an agent discovers and invokes tools and resources.
- A2A describes how independently deployed agents advertise capabilities and exchange tasks.
- OpenTelemetry describes and transports traces, metrics, and logs.
- OCI images package the same application for local and cloud runtimes.
- AGENTS.md gives coding agents repository-local instructions.
Standards reduce coupling; they do not guarantee interoperability by themselves. The course pins implementations and verifies the concrete versions together.
Where do the AAIF and CNCF fit?
The Agentic AI Foundation is a Linux Foundation home for open agent infrastructure, including agentgateway, MCP, and A2A. The Cloud Native Computing Foundation stewards Kubernetes, Prometheus, and kagent among many other projects. Foundation status is useful governance context, not evidence that a pre-1.0 API is stable.
What should you verify before upgrading the stack?
Read release notes and schemas, update one component at a time, regenerate locks, and run:
For an infrastructure upgrade, also render and validate the manifests before a local skaffold run -p local. Never infer compatibility from a project name or a floating latest tag.